package vistas;

import java.awt.Component;
import java.awt.Container;
import java.io.File;

import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFileChooser;
import javax.swing.filechooser.FileNameExtensionFilter;

import programa.Partida;

/*
 * Vista del di�logo para cargar un juego guardado
 */
public class VistaCargarArchivo {

	public VistaCargarArchivo() {
		final JFileChooser chooser = new JFileChooser();

		/* Removemos la opcion poder abrir cualquier archivo */
		chooser.setAcceptAllFileFilterUsed(false);

		/* Permito la carga de archivos .xml */
		FileNameExtensionFilter filter = new FileNameExtensionFilter(
				"Archivos XML", "xml");
		chooser.setFileFilter(filter);

		/* Seteo el directorio actual en la carpeta de partidasGuardadas */
		File file = new File("partidasGuardadas");
		chooser.setCurrentDirectory(file);
		chooser.setControlButtonsAreShown(false);
		deshabilitarOpciones(chooser);

		/* Actuamos segun la opcion que elija el usuario */
		int returnVal = chooser.showOpenDialog(Partida.getInstance()
				.getVentana());
		if (returnVal == JFileChooser.APPROVE_OPTION) {
			String name = chooser.getSelectedFile().getName().split(".xml")[0];
			if (Partida.getInstance().cargarPartida(name)) {
				Partida.getInstance().actualizarVista(name);
			}
			;
		}
	}

	public void deshabilitarOpciones(Container contenedor) {
		for (int i = 0; i < contenedor.getComponentCount(); i++) {
			Component componente = contenedor.getComponent(i);
			if (componente instanceof JButton) {
				JButton b = (JButton) componente;
				b.setEnabled(false);
			} else if (componente instanceof JComboBox) {
				JComboBox b = (JComboBox) componente;
				b.setEnabled(false);
			} else if (componente instanceof Container) {
				deshabilitarOpciones((Container) componente);
			}
		}
	}

}
